Define principal fields

Principal fields are key data fields used throughout XECUTE to describe, calculate, and report on properties of activity areas (mining areas/shapes). They form the foundation for reserving, scheduling, reporting, and rule definitions, so they are one of the first configurations you should set up when starting a new project. Begin with the most critical fields, then add others as your requirements grow.

Principal fields are defined globally, meaning they are available across all sites in XECUTE. Similarly, activity definitions are also global. For each activity type, you select the principal fields it will inherit. This ensures that each activity only includes fields relevant to its purpose.

For example:

Open principal fields setup

To configure principal fields, go to Config > System Configuration > Principal Fields.

What are principal fields?

Principal fields represent core attributes—such as volume, mass, or grade—used to describe and quantify key properties of activity areas. They are necessary to measure outcomes for activity areas and drive calculations in scheduling, reserving, reporting, and rule definitions.

Principal fields can obtain their values in two ways:

Principal fields support different data types (numeric, text, date) and aggregation methods (Sum, Weighted Average, Min, Max).

Which fields do I create?

Create principal fields that are essential for tracking and reporting the results of each activity you plan to schedule. These fields provide the key metrics that quantify performance for activity areas.

When deciding which fields to define, consider:

Focus on fields that directly support your operational objectives, such as production targets, compliance reporting, or blending requirements.

Start simple and scale up

For new sites, define only the minimum set of fields needed to report on essential metrics. Avoid overcomplicating the setup. As your project grows and your reporting or planning needs become more detailed, you can add additional fields incrementally.

How to define principal fields

How to define principal fields

  1. Go to Config > System Configuration > Principal Fields.

  2. For each field you want to create:

    1. Click Add.

    2. Enter the required property inputs, including the name, field type, and aggregation type.

    3. Enter a default value.

    4. Set up the Expression to determine how the field derives its values.

      The values should be consistent with the specified units and be determined by considering the selected aggregation type.

Default principal fields

XECUTE provides a set of pre-defined principal fields. The software internally determines their values. These fields are essential for core calculations and reporting.

While you can view their properties, only the Units and Decimal places can be edited.

These descriptions reference activity area slices, which are divided sections of an activity area shape – created along a specified mining direction. Slicing improves planning accuracy by enabling reserves, quantities, and other metrics to be calculated and reported at a finer level of detail (e.g., per slice) rather than only for the entire activity area.

Field

Description

AvgFlrElevation

Average elevation of the floor of the activity area slice, calculated from the minimum Z-values at the slice centroid or all vertices.

AvgThk

Average thickness of the activity area slice, calculated as Volume ÷ Plan Area.

Density

Determined from the Density field in the imported block models for the given site.

This value is mapped during configuration and used in calculations such as for the Mass field.

GradeControlIntersectionPercent

Percentage of the grade control volume that intersects with the activity area’s volume.

In other words, it defines how much a grade control shape (deposit area overriding certain geological attributes) overlaps an activity area.

Mass

Calculated as Volume × Density.

PlanArea

The surface area of the activity area slice silhouette.

Volume

The total volume of the activity area slice.

Volume_Swollen

The activity area slice Volume after applying the swell factor.

The swell factor is applied to material definitions in Site Management > Materials.

Example principal fields

Below are examples of principal fields commonly used in mining and drilling activities.

Code

Description

Category

Units

Field Type

Aggregation

Expression / Source

Volume

In-situ volume of material

Default

Number

Sum

Determined by software

Mass

Tonnes of material (Volume × Density)

Default

t

Number

Sum

Determined by software

Density

Material density from block model

Default

t/m³

Number

Weighted Avg (by Volume)

Mapped from block model

Au

Gold grade

Ore

ppm

Number

Weighted Avg (by Mass)

Mapped from block model

AuOz

Gold ounces

Ore

ozt

Number

Sum

(Au ÷ 31.1) × Mass

PlanArea

Horizontal area of slice

Default

Number

Sum

Determined by software

AvgTk

Average thickness of slice

Default

m

Number

Weighted Avg (by PlanArea)

Determined by software

Volume_Swollen

Volume after swell factor

Default

Number

Sum

Determined by software

Holes

Number of drill holes

Drill

Holes

Number

Sum

PlanArea ÷ BurdenSpacing

DrillMetres

Total drill length

Drill

m

Number

Sum

AvgTk × Holes

BurdenSpacing

Drill pattern spacing

Drill

m

Number

Weighted Avg (by Volume)

8 × 8

ANFO

Explosives requirement

Drill

kg

Number

Sum

43 × Holes × 8

OxCode

Oxidation code

Code flag

Text

Mapped from block model

GradeControl IntersectionPercent

% overlap with grade control

Default

%

Number

Weighted Avg (by Volume)

Determined by software

Other examples of principal fields

Mining and material movement

Drilling and blasting

Ore quality and processing

Classification and flags

Usage in scheduling and reporting

Principal fields are used in:

Field definition

Use the Add and Remove buttons to create or delete fields as needed. Each principal field includes the following properties:

Principal Field

Code

Defines a unique identifier for the field.

If the field will derive its value from a site’s block model, the code could match the name of the associated field in the block model.

Description

Allocates a user-friendly label for the field.

Category

Defines a category for the field.

All fields within the same category are grouped together in the interface, which helps keep things organised for mapping and reporting.

Units

Display units for numeric fields (e.g., t, m3).

Field Type

Defines the type of data stored in the field.

  • Number: Numeric values (e.g., Mass, Volume)

  • Text: String values (e.g., MaterialType, OxCode, DrillPatternName)

Aggregation Type

Defines how a field’s values are aggregated from the lowest level (e.g., slice) up to the highest level (e.g., activity area). This determines how data rolls up through the hierarchy.

Type

Description

Example Use Case

Sum

Adds values together as they accumulate up the structure.

Mass – total tonnes across all slices.

Average

Calculates a simple numeric average (sum ÷ count).

Number of Coal Piles – average count across areas.

Weighted Average

Calculates an average weighted by another field (e.g., Mass or Volume).

Grade (Au) – weighted by Mass for accuracy.

Min

Displays the smallest value from all lower-level records.

Minimum Elevation – lowest point in an area.

Max

Displays the largest value from all lower-level records.

Maximum Elevation – highest point in an area.

There’s also the Aggregated Evaluation type. Refer to Aggregated evaluation below.

Weighting Field

Specifies the field used to weight values when the Aggregation Type is set to Weighted Average.

Decimal

Defines the number of decimal places to display for numeric values.

Default Value

Defines a fallback value if the field cannot be mapped or calculated (e.g., missing block model data).

For more information about deriving values from an expression or the block model, see Determining values below.

Expression

Indicates whether the field uses an expression (Yes) or derives its value from a block model (No).

  • No: Value comes from imported block model data.

  • Yes: Value is calculated using an expression.

For details on building expressions, see Use the expression builder below.

For more information about the evaluation level, refer to Evaluation level below.

Evaluation Level

Determines when the expression is applied during reserving calculations (the process of calculating reserves (e.g., tonnes, grades, volumes) for activity areas based on block model data):

  • Block (default): Expression is applied to each block of the block model, then aggregated.

  • Slice: Expression is applied after blocks are grouped into slices, so you can use slice-level geometry like PlanArea or AvgThk.

Evaluation Type

Available only when Evaluation Level = Slice. Defines how the expression applies at the slice level:

  • Slice Total Expression: Applies once per slice using aggregated values for all materials. Ideal for geometry-based calculations (e.g., drill metres).

  • Material-Based Expression: Applies separately for each material within a slice. Useful when spacing or logic varies by material type.

Determining values

After defining a principal field (its code, category, field type, and so on), you must determine how it derives values. Each activity area inherits the set of principal fields, so the values are determined against each activity area. For example, activity area DIG_01 may inherit a set of principal fields named Au, Volume, Mass, and OxCode.

Deriving from block model fields

When setting up a site, you import block models to define its underlying geology. Block models include attributes, which describe qualities, quantities, and characteristics of the mineralisation within the deposit. However, these fields aren’t used until they are mapped to principal fields.

Custom values

Fields can also be defined using expressions, allowing dynamic calculations based on other field values or spatial context.

Alongside defining the block model’s existing attributes, you can define and calculate additional attributes that don’t exist in the block model. The value of a calculated attribute derives from an expression, which can include an equation that references the values of other attributes. Calculated fields can help condition the imported data an derive related information that the block model hasn’t provided. A field can store either double (numeric) values or classification (text) values.

Use the expression builder

When you set Expression = Yes for a principal field, you’ll use the Expression Builder to define how its value is calculated. This is useful when the block model doesn’t provide the required data or when you need a derived value (e.g., DrillMetres, BurdenSpacing).

Why and when to use it

By default, principal fields get their values from block model mappings, aggregated according to the field’s Aggregation Type. Expressions let you override this and calculate values dynamically, using other fields, constants, or logic.

Together with Evaluation Level and Evaluation Type, expressions control when and how calculations occur during reserving.

Available fields

The fields available depend on your evaluation settings:

Material-based expressions

When you choose Material-Based, you start by creating a default expression that applies to all materials. If some materials need different logic, you can override the default by adding material-specific expressions:

Example use cases

Here are some examples that show how principal fields work together in different scenarios.

Principal fields for activities that move material

When an activity type moves material (for example, a Mining activity), its Quantity Field—the field that determines how much material the activity will move—must be a principal field that represents an accumulation value such as Mass or Volume. These fields are critical because they drive the scheduling and reporting of material movement.

How these fields are usually configured

Aggregation type requirements

Principal fields for drilling activities

Drilling activities use a quantity field that doesn’t move material, such as DrillMetres. Unlike mining activities, these values are usually calculated using expressions because they depend on geometry and drill pattern dimensions.

How drill metres are calculated

Drill metres are typically based on:

Burden and spacing could vary based on the underlying geology within the activity area. They could be calculated in several ways, including using default values, referencing a principal field, or applying material-specific logic.

A common expression looks like this:

PlanArea * AvgThk / BurdenSpacing

In this case:

An example DrillMetres principal field configuration is shown below.

Principal Field (DrillMetres)

Code

DrillMetres

Description

Drill Metres

Category

Drills

Units

m

Field Type

Number

Aggregation Type

Number

Weighting Field

Sum

Decimal

2

Default Value

0

Expression

Plan Area / BurdenSpacing * AvgTk

Evaluation Level

Slice

Evaluation Type

Slice Total Expression

Handling different spacing by material

Sometimes, drill pattern spacing varies by material type. In this case, you can use a Material-Based expression at the slice level:

In this example, for the BurdenSpacing principal field, a slice-level material-based expression applies different spacing for Waste material. Other materials use the default expression (but an expression could be set for each material).

Principal Field (BurdenSpacing)

Code

BurdenSpacing

Description

Burden Spacing

Category

Drills

Units

m

Field Type

Number

Aggregation Type

WeightAverage

Weighting Field

Sum

Decimal

2

Materials

Default Expression

8 * 8

Waste Expression

7 * 7

Reviewing results

You can review the calculated values in Client > Activity Areas. Enable the relevant fields in the activity type’s field list and save changes.

Activity Area

PlanArea

AbgTk

Volume

BurdenSpacing

DrillMetres

DRL_01

29,234.76

5.59

163,430.33

52.82

3,090.25

Example drill principal field values for a drilling activity area

Advanced information

The following features are functions are more versed for familiar XECUTE users. Use them after you’ve set up the initial functional project.